gtkmodelbutton: Drop special case to close GtkPopoverMenu
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 13 Oct 2020 13:51:36 +0000 (15:51 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Tue, 13 Oct 2020 14:55:53 +0000 (16:55 +0200)
With ::cascade-popdown in place, this special case is not necessary
anymore.

gtk/gtkmodelbutton.c

index 54b55260ec6908bfca9036f4a42743a4a108deb8..d55391de4327b69fffed4fd6c0fb146295b6b612 100644 (file)
@@ -939,22 +939,6 @@ switch_menu (GtkModelButton *button)
     gtk_stack_set_visible_child_name (GTK_STACK (stack), button->menu_name);
 }
 
-static void
-close_menu (GtkModelButton *self)
-{
-  GtkWidget *popover;
-
-  popover = gtk_widget_get_ancestor (GTK_WIDGET (self), GTK_TYPE_POPOVER);
-  while (popover != NULL)
-    {
-      gtk_popover_popdown (GTK_POPOVER (popover));
-      if (GTK_IS_POPOVER_MENU (popover))
-        popover = gtk_popover_menu_get_parent_menu (GTK_POPOVER_MENU (popover));
-      else
-        popover = NULL;
-    }
-}
-
 static void
 gtk_model_button_clicked (GtkModelButton *self)
 {
@@ -975,7 +959,11 @@ gtk_model_button_clicked (GtkModelButton *self)
     }
   else if (self->role == GTK_BUTTON_ROLE_NORMAL)
     {
-      close_menu (self);
+      GtkWidget *popover;
+
+      popover = gtk_widget_get_ancestor (GTK_WIDGET (self), GTK_TYPE_POPOVER);
+      if (popover)
+        gtk_popover_popdown (GTK_POPOVER (popover));
     }
 
   if (self->action_helper)